Method and system to process video effects

ABSTRACT

A system and method of processing a video Instant Message (IM) is provided. The method may comprise receiving a captured video stream from an image capture device and selecting at least one video effect from a plurality of video effects. A modified video stream is then generated (e.g., using a digital filter) that includes the video effect and is then communicated to a viewing location as the video Instant Message. The IM application can be a legacy IM application and generate a graphic user interface via the IM application to allow a user to select the video effect. The captured video stream may be received from a web camera and the modified video stream may be communicated via the Internet to the viewing location. The method may be performed in a device driver that interfaces the image capture device to an Instant Messaging application associated with the device driver.

CLAIM OF PRIORITY

The present patent application claims the priority benefit of the filingdate of U.S. Provisional Application Ser. No. 60/649,229 filed Feb. 2,2005, the entire content of which is incorporated herein by reference.

TECHNICAL FIELD

The present invention relates generally to the field of processing acaptured video stream to include video effects and, more specifically,in one embodiment, to a method and system to process a captured videostream in a device driver.

BACKGROUND

With the advent of the Internet video conferencing or Instant Messaginghas become widely available to users having a broadband connection and apersonal computer. In computer systems, device drivers are to interfacehardware devices to application programs. A driver acts like atranslator between a hardware device and an application program (e.g.,Microsoft Office) that use the device (e.g., a specific printer). Eachhardware device typically has its own set of specialized commands thatare known to its dedicated driver thereby to control operation of thedevice. Likewise, most application programs require access to devices byusing generic commands that are not hardware device specific. In orderfor the application program to utilize generic commands to communicatewith the device, the driver accepts generic commands from theapplication program and translates them into specialized commandsunderstood by the device. Likewise, the device driver may acceptspecific commands from the device (e.g., ink low in the printer) andtranslate them into generic commands understood by the applicationprogram. Many drivers, such as a keyboard driver, come with an operatingsystem. For other devices, a new driver may need to be loaded whenconnecting the device to a computer system. Device drivers mayessentially comprise a number of files. For example, in DOS systems,drivers are files with a .SYS extension; in Windows environments,drivers often have a .DRV extension.

It will be appreciated that, when a new hardware device is to be addedto a computer system, application programs resident on the computersystem need not be modified and all that is required is a new devicedriver to interface the new hardware to the existing applicationprograms.

SUMMARY

In accordance with the invention, there is provided a method and systemto process digital image data (e.g., a digital video stream or stream)in a device driver.

In one exemplary embodiment, a method is provided of processing anInstant Message, the method comprising:

-   -   receiving a captured image from an image capture device;    -   selecting at least one image effect from a plurality of image        effects;    -   generating a modified image including the at least one image        effect; and    -   communicating the modified image to a viewing location as the        Instant Message.

In one exemplary embodiment, the method is performed in a device driverto interface the image capture device to an Instant Messagingapplication associated with the device driver. The captured image may bea digital video stream.

The invention also extends to a machine-readable medium embodying asequence of instructions that, when executed by a machine, cause themachine to execute any one or more of the method described herein orthat is configured to implement any one or more of the systems describedherein.

Other features of the present invention will be apparent from theaccompanying exemplary drawings and description that follow.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is illustrated by way of example, and not limitation, inthe figures of the accompanying drawings, in which like referencenumerals indicate the same or similar features unless otherwiseindicated.

In the drawings,

FIG. 1 shows a schematic block diagram of exemplary hardware andsoftware layers in a computer system, in accordance with the invention;

FIG. 2 shows a schematic block diagram of exemplary functional units ofan embodiment of video device driver, in accordance with the invention,for processing a digital image;

FIG. 3 shows an exemplary graphical user interface, in accordance withthe invention, generated by an Instant Messaging (IM) application usingthe video device driver;

FIG. 4A shows an exemplary graphical user interface for displaying animage captured by a web camera without inclusion of any special effects;

FIG. 4B shows an exemplary image, in accordance with the invention, sentvia a computer network to a remote viewer including a special effectadded by the video device driver;

FIG. 4C shows an exemplary image, in accordance with the invention, sentvia a computer network to a remote viewer including an insertion of aneffect by a drawing/doodling sub-module added by the video devicedriver;

FIG. 5 shows an exemplary graphical user interface, in accordance withthe invention, generated by an Instant Messaging application to allow auser to select IM preferences;

FIG. 6A shows an exemplary graphical user interface, in accordance withthe invention, generated by an instant messaging application to allow auser to select a particular special effect;

FIG. 6B shows an exemplary graphical user interface, in accordance withthe invention, generated by an instant messaging application to allow auser to select a particular effect by a drawing/doodling sub-module;

FIG. 7 shows a schematic flow diagram of a method, in accordance withthe invention, of processing a video instant message in a device driver;

FIG. 8 shows an exemplary Internet-based video Instant Messaging system,in accordance with an embodiment of the invention;

FIG. 9 shows an exemplary graphical user interface, in accordance withthe invention, generated by system of FIG. 8;

FIG. 10 shows an exemplary alternate drop-down menu of the graphicaluser interface of FIG. 9; and

FIG. 11 shows a diagrammatic representation of machine in the exemplaryform of the computer system within which a set of instructions, forcausing the machine to perform any one of the methodologies discussedherein, may be executed.

DETAILED DESCRIPTION

A method and a system to process digital image data (e.g., a digitalvideo image or stream) are described. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the present invention. Itwill be evident, however, to one skilled in the art that the presentinvention may be practiced without these specific details. The inventionis described, by way of example, with reference to processing a digitalvideo stream in a video Instant Messaging (IM) environment. It will,however, be appreciated that the invention can apply in any devicedriver environment and/or any digital data processing environment. Thus,the invention is not limited to video streams but may also findapplication in still images or digital photographs.

In one exemplary embodiment, a selected video effect is automaticallyadded to a captured video stream prior to generate a modified videostream for communication to a display device located at a remote viewinglocation. Accordingly, in this example embodiment, no further effectprocessing of the video effect is required to display the modified videostream. As described in more detail below, the video effect may simulatea selected environment in which the video imaged are captured. Forexample, a particular capture location, weather condition, specialeffect, or the like may be simulated at the capture location. Forexample, a weather condition such as snow may be simulated by adding asnow effect to the captured image. In one exemplary embodiment, thevideo effect is a gimmick effect or fun effect that simulates a gimmickyvideo capture environment. In another exemplary embodiment, the videoeffect is an insertion of manually drawn figures, and/or stylised words,and/or a supplementary image(s), and/or predefined shapes that altersthe appearance of the video capture screen. For the purposes of thisspecification the term “gimmick” is intended to include a trick effect,a fake or simulated environment, a fun effect, or the like. It ishowever to be appreciated that the effect is not limited to sucheffects. When the invention is applied in an IM environment, thesimulated video effect may be added at either the capture location or atthe viewing location.

In one exemplary or example embodiment, a video device driver isprovided that can be deployed in an Instant Messaging (IM) environment.As well known to a person of skill in the art, Instant Messaging is acommunication method that allows users to create a kind of privatecommunication or chat room with one or more other another individuals.Communications may be text communications, voice communications and/orvideo communications which take place in real-time (or near real-time).Further, video and text IMs may take place using any communicationnetwork such as the Internet using any computer device (e.g., a personalcomputer (PC), Personal Digital Assistant (PDA) or the like), a cellulartelephone network (e.g., using a cellular telephone) or any othercommunication network.

There are at present a variety of IM application programs available fordownloading via the Internet that provide video and text instantmessaging or conferencing. Examples of such application programs areYahoo Instant Messenger, MSN Instant Messenger, and AIM (AOL InstantMessenger). These application programs allow users to video IM (videoconference) using relatively inexpensive video capture devices such asweb cameras. It will be appreciated that each of these exemplary IMapplication programs allows this functionality irrespective of theactual type of video capture device used (e.g., web camera or videocamera). Each video capture device has an associated device driver tointerface the specific capture device to any one of the different IMapplication programs. A change in the IM application program (e.g., asoftware upgrade) does not generally require any change in the devicedriver for the video capture device.

Device drivers generally act as translators between computer applicationprograms (and computer operating systems), and virtually all hardwarenot on a computer's motherboard. In video IM application programs, thedevice driver of the video capture device acts as a translator betweenthe IM application program (e.g., Yahoo Instant Messenger, MSN InstantMessenger, and AIM) and the video capture device.

Referring to the drawings, a computer system 10 is shown to includeexemplary hardware and software layers 12, 14 respectively. The hardwarelayer 14 shows a video capture device 16 but it is to be appreciatedthat several other hardware devices (e.g. a printer, audio card,graphics card, CD reader/writer, DVD reader/writer or the like) may beprovided. The software layers 12 are shown to include an IM applicationprogram 18, an operating system 20, and a video device driver 22, alsoin accordance with the invention, associated with the video capturedevice 16. As described in more detail below, in one embodiment, thevideo device driver 22 adds special effects on-the-fly to video imagesor streams captured by the video capture device 16.

The IM application program 18 may be any one of a plurality of differentIM application programs (including legacy application programs) such as,Yahoo Instant Messenger, MSN Instant Messenger, AOL Instant Messenger,or the like. The operating system 20 may, for example, be aWindows-based operating system (e.g. Windows XP), a Unix system, Apple'sMacintosh operating system, Linux, or any other operating system. In oneexemplary embodiment, the system 10 communicates both video and textinstant messages via the Internet. Accordingly, the video capture device16 may be a web camera (e.g. a web camera available from Creative LabsInc., Logitech, Labtech, D-Link or any other image capture device). Itis, however, to be appreciated that the software layers 12 and hardwarelayer 14 of the system 10 are merely exemplary layers and, in differentembodiments, one or more software layers 12 may be omitted or combined,and further software layers 12 may be provided. Likewise, multipledevice drivers may be provided (e.g., for printers, audio cards,graphics cards etc.).

The video device driver 22 may be a propriety device driver written by amanufacturer of the video capture device 16. As mentioned above, thevideo device driver 22 may act as a translator between the IMapplication program 18 and the video capture device 16 and may include aplurality of files (e.g. .dll files, .sys files, .drv files, or thelike). The video device driver 22 is also shown to include variousfunctional layers 24, 26, 28 (see FIG. 2). Each functional layer 24, 26,28 may perform various operations on a video stream 30 received from thevideo capture device 16. In one exemplary embodiment, the video devicedriver 22 includes two exemplary processing modules, namely, a videoprocessing module 32 and an effect processing module 34. Although theprocessing modules 32, 34 are shown as separate modules, it will beappreciated that their functionality may be integrated into a singlemodule and, accordingly, the modules 32 and 34 may thus form anintegrated software unit. However, it will be appreciated that themodules can also be separate functional modules or software unitslocated within the video device driver 22. In one exemplary embodiment,the effect processing module 34 defines a virtual driver operating inconjunction with the IM application program 18 and video processingmodule 32 which may include a conventional webcam device driver.

In one exemplary embodiment, the video processing module 32 includes ahardware interface module that interfaces with a video capture device,and the effects processing module 34 may define a selection module thatselects a filter for use in filtering the captured video image therebyto introduce a special effect.

The video processing module 32 may include conventional video processingfunctionality (a plurality of driver files) to process a video streamreceived from a web camera. The video processing module 32 is shown, byway of example to include face tracking functionality 36, motiondetection functionality 38, and a plurality of other functions 40 knownto a person of ordinary skill in the art. However, unlike prior artvideo device drivers, the video device driver 22 includes effectprocessing functionality in the device driver itself that may, forexample, be performed by the by the effect processing module 34.Accordingly, the video stream 30 received from the video capture device16 is also fed into the effect processing module 34 which then takes thedigital data and processes it to include one or more selected effects.

In one exemplary embodiment, the effect processing is performed inreal-time and on-the-fly and a processed video stream 31 is then feed,for example, into the functional layer 26. The functional layer 26 mayinclude functions commonly used in web camera device drivers such as,for example, brightness adjustment, saturation adjustment, contrastadjustment, and so on. However, in addition to the aforementionedcontrols, the functional layer 26 may also allow effects selectionfunctionality 42. The effects selection functionality 42, allows the IMapplication program 18 (e.g. Yahoo IM) to interact with the video devicedriver 22 so that a user can define the effect included in the videostream 30. One or more further functional layers may be provided toprocess the captured video stream which is then fed as a processed ormodified video stream 33 to the IM application program 18.

It will be noted that in the exemplary embodiment illustrated, theeffect is introduced into the video stream in the video device driver 22itself and not in the IM application program 18 or any other applicationprogram on the computer system 10. Accordingly, the processing of thevideo stream 30 to include the effects is not dependent on the specificIM application program running on the system 10. For example, in theevent of the IM application program 18 being updated or changed, theeffect processing functionality is not affected.

In addition, the effect processing module 34 may also include adrawing/doodling sub-module 35 that allows for manually drawn figuresand/or stylized words and/or supplementary images to be added to thevideo stream 30 prior to the video stream being received by the IMapplication program 18. The addition of such effects alters theappearance of the video capture screen.

The effect processing module 34 may include a plurality of differenteffects provided in an effects library 44. The effect library 44 isshown, by way of example, to include a ghosting effect 46, a fire effect48, a snow effect 50, a water effect 52, a Times Square effect 54, and aplurality of other effects 56. In use, as described in more detail, auser may via the IM application program 18 select at least one effectfrom the effects library 44 which is then added to the video stream 30prior to the video stream 30 being received by the IM applicationprogram 18. The video effect may thus simulate an environment at theimage capture location.

In one exemplary embodiment, the effects library 44 includes a pluralityof digital filters. For example, one digital filter may provide theghosting effect 46, another digital filter may provide the fire effect48, another digital filter may provide the snow effect 50, and so on. Itwill be appreciated that a variety of different effects may be createdwith different digital filters (e.g., defined in one or more driverfiles). Accordingly, in one exemplary embodiment, the effect processingmodule 34 uses one or more selected filters to filter the video stream30 in the video device driver 22 thereby to introduce an effect inreal-time or on-the-fly. The effects introduced may be humorous,trivial, or the like (gimmicky) to enhance/alter a video image receivedand seen by a remote viewer with whom the sender is instant messaging orvideo conferencing.

FIG. 3 shows an exemplary graphical user interface 50, in accordance tothe invention, generated by the IM application program 18 in response toretrieving files provided in the video device driver 22. The GUI 50includes a toolbar 52 allowing a user to perform edit functions, viewfunctions, contacts functions, and help functions. The GUI 50 furtherincludes radio buttons 54 allowing a user to select webcam IM 56, textIM 58, voice IM 60, photograph IM 62, conference IM 64, and performsearch functionality 66. It will be appreciated that various otherfields and radio buttons may be provided in different embodiments. Itwill be appreciated that the video effects may also be applied to stillimages such as the photographs IM 62.

The exemplary GUI 50 includes a text entry field 68, a sent text field70, and a send button 72. For example, in the event of a user desiringto commence a video IM session, a user may use a pointing device such asa mouse to select webcam IM 56 to initiate a session. In responsethereto, an exemplary graphical user interface 80 (see FIG. 4A) maydisplay an image captured by the video capture device 16 in a displaywindow 82. As in the case of conventional video IM, the GUI 80 allows auser to broadcast a video stream by activating a broadcast button 84;pause a broadcast using a pause button 86; or provide relatedfunctionality using an exemplary button 88. The GUI 80 also includes atoolbar 90 to allow a user to perform conventional IM functionality.FIG. 4B shows an exemplary processed or modified video stream or image100 including one or more special effects (e.g. a snow effect 50) thathas been added to the video stream 30 received by the device driver 22.In a further example, FIG. 4C shows an exemplary processed or modifiedvideo stream or image 101 including one or more drawing/doodlingimprints such as, for example, a hand-drawn heart 51 and stylized text53, that have been added to the video stream 30 received by the devicedriver 22. Thus, a person participating in a video IM session sees theimage captured by the video capture device 16 including special effectsthat have been included on-the-fly. In an example embodiment, specialeffects may be added to an image itself. For example, conversing partiesusing the IM application program 18 may add effects to the images. Forexample, when a webcam is trained on a first user's face, the IMapplication program 18 may allow a second user to add whiskers/stubble(or any other effects) to the first user's face (and thus the imagereceived from the first user). The modified image may then becommunicated to the first user so that the effects are visible to thefirst user. In an example embodiment, the effects added by the seconduser may be visible to the first user in real-time. It will beappreciated that the effects added to the image may be derived from alibrary of effects or be created by the second user on-the-fly.

In order to allow a user to select different effects provided by thevideo device driver 22, the IM application program 18 provides a IMpreferences graphical user interface 110 (see FIG. 5). Typically, inconventional IM application programs such as Yahoo Instant Messenger,MSN Instant Messenger, AIM, or the like, when a user selects apreferences or advanced tab, the IM application program 18 retrievesparticular advanced details from the video device driver 22. Forexample, the video device driver 22 may include one or more files thatthe IM application program 18 retrieves to generate advanced ormessenger preferences display screens. An example of such a displayscreen or GUI is the GUI 110. The GUI 110 is shown to include anexemplary camera settings button 112, a camera source button 114, andvarious other check boxes 116 and radio buttons 118 that allow a user todefine advanced or user preferences. However, in addition to theaforementioned, the GUI 110 includes an effects settings button 120 anddrawing/doodling function button 121 in accordance to the invention. Theeffects setting button 120 and drawing/doodling function button 121, asdescribed in more detail below, allows a user to select one or morespecial effects provided by the video device driver 22 which are thenincluded in the video stream 30 received from the video capture device(e.g. the web camera).

FIG. 6A shows an exemplary graphical user interface 130, which ispresented to user upon selection (e.g., a mouse click) of the effectsettings button 120 of the GUI 110 (see FIG. 5). The various videoeffects that may optionally be selected by the user using the GUI 130correspond to those provided in the effects library 44 of the videodevice driver 22. For example, in order to include the snow effect inthe image 100 (see FIG. 4B) a user would select a snow button 132, whichwould then be set as the requested effect in the effect processingmodule 34. Accordingly, in one exemplary embodiment, the effectprocessing module 34 would then utilize a digital filter provided in thevideo device driver 22 to create or include a snow effect into the videostream 30 which is then communicated to the IM application program 18 asshown by arrow 33 in FIG. 2. Exemplary buttons 134, 136, 138,140, 142allow a user to instruct the effects processing module 34 to include theghosting effect 46, the fire effect 48, the water effect 52, the TimesSquare effect 54 and other effects 56 respectively. It will be notedthat, as the effect functionality may be selected using an advanced orpreferences menu in a conventional IM application program, no softwarechanges are required to conventional or legacy IM application programsin order to allow them to include the functionality provided by thevideo device driver 22.

FIG. 6B shows an exemplary graphical user interface 500, which ispresented to user upon selection (e.g., a mouse click) of thedrawing/doodling function button 121 of the GUI 110 (see FIG. 5). Forexample, in order to include the hand drawn heart 51 in the image 101(see FIG. 4C) a user would select a line-drawing button 502, which wouldthen be set as the requested effect in the effect processing module 34.Accordingly, in one exemplary embodiment, the effect processing module34 would then utilize a digital filter provided in the video devicedriver 22 to create or include the hand drawn heart 51 into the videostream 30 which is then communicated to the IM application program 18 asshown by arrow 33 in FIG. 2. Exemplary buttons 504, 506, 508, 510, 512,514 allow a user to instruct the effects processing module 34 to includethe spray drawings, supplementary images, stylised text, pre-definedshapes, an erasing function and a fill function respectively. In theexemplary embodiment, a colour palette 516 may be utilised by a user toselect line/spray/fill colours. Thickness of the lines and spray may bedefined by the user. Selecting button 506 may activate a gallery ofsupplementary images for the user to select a supplementary image, orthe user may be able to select a specific image file to be incorporatedinto the image 101. Supplementary images may be, for example, stars,hearts, cakes, animals, smileys and so forth. Selecting button 508 mayactivate another menu for selecting a font type and font size to beused. Selecting button 510 may allow the user to select pre-selectedcommon shapes like stars, triangles, squares, pentagons and so forth tobe incorporated into the image 101. It will be noted that, as the effectfunctionality may be selected using an advanced or preferences menu in aconventional IM application program, no software changes are required toconventional or legacy IM application programs in order to allow them toinclude the functionality provided by the video device driver 22.

In FIG. 7, reference numeral 150 shows a schematic flow diagram of animage processing method, in accordance with the invention, performed ina device driver such as the device driver 22. Although the method 150 isdescribed with reference to the device driver 22, it will be appreciatedthat the method may be deployed in any device driver that interfaces animage capture device (both still and video images) to any applicationprogram.

As shown at operation 152, the method 150 receives a video stream 30from an image such as the video capture device 16. Thereafter, atdecision operation 154, a determination is made as to whether or not oneor more effects is to be included or added to the video stream 30. If noeffects are to be added, then the method may perform conventionalprocessing functionality on the video stream as shown at operation 156and return to operation 152. It should be noted that effects include theinsertions using the drawing/doodling sub-module 35.

However, if inclusion of an effect has been selected, then the method150 proceeds to operation 158 where the selected effect is identified.When the selected effect is achieved using one or more digital filters,the method 150 at operation retrieves filter parameters for the selectedeffect (see operation 160). The filter parameters for the selectedeffect may be provided by one or more files of the device driver 16. Asshown at operation 162, the video stream 30 is then processed using theselected filter by, for example, the effect processing module 34.

It will be appreciated that the method 150 may perform both effectprocessing (see operations 158-162) and conventional processingfunctionality (see operation 156) on the video stream 30. Further, theeffect processing and conventional processing functionality may beperformed in any order.

It will however be appreciated each filter for generating an associatedspecial effect may have a different transfer function and that the abovetransfer function is merely an example of such a function.

FIG. 8 shows an exemplary Internet-based video instant messaging system170, in accordance with an embodiment of the invention. The system 170includes a web camera 172 captures an image and communicates image datato a mini streaming driver 174 (e.g., a Windows Driver Model (WDM))which, in the exemplary embodiment, communicates video data to aDirectShow filter 176. Video data output by the DirectShow filter 176 isfed to a plurality of special effects filters 178. The special effectsfilters 178 may introduce a special effect as describes above. Once aselected special effect has been introduced into the captured image, thevideo data is then fed to a virtual webcam module 180 which, forexample, communicates the video stream including one or more specialeffects to one or more other applications 182, an AOL IM application184, an MSN IM application 186, a Yahoo IM application 188, or any otherapplication.

FIG. 9 shows an example graphical user interface 200 generated by thesystem 170. The GUI 200 includes a Video Effects Options pane 202 thatprovides a “Off” radio button 204 to allow a user capturing video at acapture location to disable inclusion of any video effects in a videoIM. An “On” radio button 206 allows a user to enable one or more videoeffects. Selection of one or more video effects may be accomplishedusing a drop-down menu 208. Although the drop-down menu 208 shows onlyone exemplary video effect (Backdrop-Time Square), it will beappreciated that any number of video effect options may be provided inthe menu as shown, by way of example, in FIG. 10. Further, the GUI 200may include an upgrade button 210 to retrieve further video effectswhich may, for example, then be downloaded via an Internet connection.

In one exemplary embodiment, the video device driver 22 is a USB driver(e.g., USB 1.1 or USB 2.0), a Firewire driver (IEEE 1394), or any otherdriver using any other communication protocol. It will also beappreciated that the effect functionality of video device driver may beincluded in a cellular telephone or any other mobile device capable ofcapturing images both still and moving. In certain embodiments, themodified image may be encrypted.

FIG. 11 shows a diagrammatic representation of machine in the exemplaryform of a computer system 300 within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in server-clientnetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment. The machine may be a server computer,a client computer, a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting a set of instructions (sequential or otherwise) that specifyactions to be taken by that machine. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The exemplary computer system 300 includes a processor 302 (e.g., acentral processing unit (CPU) a graphics processing unit (GPU) or both),a main memory 304 and a static memory 306, which communicate with eachother via a bus 308. The computer system 300 may further include a videodisplay unit 310 (e.g., a liquid crystal display (LCD) or a cathode raytube (CRT)). The computer system 300 also includes an alphanumeric inputdevice 312 (e.g., a keyboard), a cursor control device 314 (e.g., amouse), a disk drive unit 316, a signal generation device 318 (e.g., aspeaker) and a network interface device 320.

The disk drive unit 316 includes a machine-readable medium 322 on whichis stored one or more sets of instructions (e.g., software 324)embodying any one or more of the methodologies or functions describedherein. The software 324 may also reside, completely or at leastpartially, within the main memory 304 and/or within the processor 302during execution thereof by the computer system 300, the main memory 304and the processor 302 also constituting machine-readable media.

The software 324 may further be transmitted or received over a network326 via the network interface device 320.

While the machine-readable medium 322 is shown in an exemplaryembodiment to be a single medium, the term “machine-readable medium”should be taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The term“machine-readable medium” shall also be taken to include any medium thatis capable of storing, encoding or carrying a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present invention. The term“machine-readable medium” shall accordingly be taken to include, but notbe limited to, solid-state memories, optical and magnetic media, andcarrier wave signals.

Thus, a method and system to process digital images such as a videostream have been described. Although the present invention has beendescribed with reference to specific exemplary embodiments, it will beevident that various modifications and changes may be made to theseembodiments without departing from the broader spirit and scope of theinvention. Accordingly, the specification and drawings are to beregarded in an illustrative rather than a restrictive sense.

The invention claimed is:
 1. A method performed by a device driver toprocess a video Instant Message, the method comprising: receiving acaptured image from an image capture device; selecting at least onevideo effect from a plurality of video effects; generating a modifiedimage by applying the at least one video effect to the captured image;and communicating the modified image to a viewing location as the videoInstant Message, wherein the modified image is generated so that nofurther video effect processing of the video effect by the device driveris required to display the modified image.
 2. The method of claim 1,wherein the captured image is a video stream.
 3. The method of claim 2,which comprises generating a graphic user interface via an InstantMessaging application to allow a user to select the at least one videoeffect from the plurality of video effects.
 4. The method of claim 2,which comprises receiving the captured video stream from a web cameraand communicating the modified stream as a modified video stream via theInternet to the viewing location.
 5. The method of claim 4, whichcomprises adding additional video effects to the captured video streamat the viewing location and re-transmitting the captured video streamwith additional video effects to the user.
 6. The method of claim 4,which comprises adding additional video effects to the plurality ofvideo effects with a download facility.
 7. A method of processing anInstant Message, the method comprising: receiving a captured image froman image capture device; selecting at least one image effect from aplurality of image effects; generating a modified image by applying theat least one image effectto the captured image; communicating themodified image to a viewing location as the Instant Message; andgenerating a graphic user interface via an Instant Messaging applicationto allow a user to select the at least one video effect from theplurality of video effects, wherein the captured image is a video streamand the at least one image effect is a video effect selected from aplurality of video effects, and wherein the method is performed in adevice driver to interface the image capture device to an InstantMessaging application associated with the device driver.
 8. The methodof claim 7, wherein the device driver is configured to communicate withan Instant Messaging application.
 9. The method of claim 7, wherein thedevice driver comprises the plurality of video effects, each videoeffect being selectable via the Instant Messaging application associatedwith the device driver.
 10. The method of claim 2, wherein the videoeffect is a gimmick effect to simulate an environment at an imagecapture location.
 11. The method of claim 2, wherein the video effect isthe incorporation of at least one object to alter the appearance of thecaptured image, wherein the object is selected from the groupcomprising: drawings, supplementary images, pre-defined shapes, andstylised text.
 12. The method of claim 2, wherein generating themodified video stream comprises processing the captured image with afilter corresponding to the at least one video effect selected.
 13. Themethod of claim 12, wherein a plurality of digital filters are providedat the capture location that generate the plurality of video effects,the method comprising: selecting one of the plurality of digital filtersthereby selecting the at least one video effect; and filtering thecaptured image with the selected digital filter to provide the modifiedvideo stream.
 14. The method of claim 2, wherein the video InstantMessage is generated by an Instant Messaging application, the methodcomprising adding the at least one special effect to the captured videostream prior to communicating the captured video stream to the InstantMessaging application.
 15. A machine-readable medium having instructionsstored thereon that, when executed by a device driver, cause the devicedriver to: receive a captured image from an image capture device; selectat least one video effect from a plurality of video effects; generate amodified image by applying the at least one video effect to the capturedimage; and communicate the modified image to a viewing location as avideo Instant Message, wherein the modified image is generated so thatno further video effect processing of the video effect by the devicedriver is required to display the modified image.
 16. An imageprocessing system to process a video Instant Message, the systemcomprising: a computerized image processing system having a processor, ahardware interface module to receive a captured image from an imagecapture device; a selection module to select at least one video effectfrom a plurality of video effects; and a processing module of a devicedriver to generate a modified image by applying the at least one videoeffect to the captured image, the modified image being for communicationto a viewing location as the video Instant Message, wherein the modifiedimage is generated so that no further video effect processing of thevideo effect by the device driver is required to display the modifiedimage.
 17. The system of claim 16, wherein the captured image is a videostream.
 18. The system of claim 17, wherein the processing modulecommunicates the modified video stream to an Instant Messagingapplication which generates a graphic user interface to allow a user toselect the at least one video effect from the plurality of videoeffects.
 19. An image processing system to process an Instant Message,the system comprising: a hardware interface module to receive a capturedimage from an image capture device; a selection module to select atleast one image effect from a plurality of image effects; and aprocessing module to generate a modified image by applying the at leastone image effect to the captured image, the modified image being forcommunication to a viewing location as the Instant Message, wherein thecaptured image is a video stream and the at least one image effect is avideo effect selected from a plurality of video effects, and wherein theprocessing module is provided in a device driver to interface the imagecapture device to an Instant Messaging application associated with thedevice driver.
 20. The system of claim 19, wherein the device drivercomprises the plurality of special effects, each special effect beingselectable via the Instant Messaging application associated with thedevice driver.
 21. The system of claim 17, wherein the video effect is agimmick effect to simulate an environment at an image capture location.22. The system of claim 17, wherein the video effect is theincorporation of at least one object to alter the appearance of thecaptured image, wherein the object is selected from the groupcomprising: drawings, supplementary images, pre-defined shapes, andstylised text.
 23. The system of claim 17, which comprises a pluralityof digital filters each corresponding to a selectable video effect,wherein the processing module filters the captured image with a digitalfilter corresponding to the at least one selected video effect togenerate the modified video stream.
 24. A processing system to processvideo Instant Message, the system comprising: means for receiving acaptured image from an image capture device; means for selecting atleast one video effect selected from a plurality of video effects; meansfor generating a modified image by applying the at least one videoeffect to the captured image; and means for communicating the modifiedimage to a viewing location as the video Instant Message, wherein themodified image is generated so that no further video effect processingof the video effect is required to display the modified image at theviewing location.
 25. A method of processing a video stream, the methodcomprising: capturing the video stream at a video capturing location;prior to communicating the video stream to a viewing location,generating a user interface providing a plurality of video effectoptions; monitoring selection of at least one of the video effectoptions by a user; processing the video stream to apply a video effectidentified by the at least one video effect selected to the capturedvideo stream to produce a modified video stream; and communicating themodified video stream to the viewer location, wherein the video streamis processed so that no further video effect processing of the modifiedvideo stream is required for displaying at the viewer location.
 26. Themethod of claim 25, which comprises adding additional video effects tothe modified video stream at the viewing location and re-transmittingthe modified video stream with additional video effects to the user. 27.The method of claim 25, wherein the video effect is a gimmick effect tosimulate an environment at an image capture location.
 28. The method ofclaim 25, wherein the video effect is the incorporation of at least oneobject to alter the appearance of the captured image, wherein the objectis selected from the group comprising: drawings, supplementary images,pre-defined shapes, and stylised text.
 29. A method of processing avideo stream, the method comprising: capturing the video stream at avideo capturing location; prior to communicating the video stream to aviewing location, generating a user interface providing a plurality ofvideo effect options; monitoring selection of at least one of the videoeffect options by a user; processing the video stream to apply a videoeffect identified by the at least one video effect selected to thecaptured video stream to produce a modified video stream; andcommunicating the modified video stream to the viewer location, whereinthe method is performed in a device driver to interface the imagecapture device to an application associated with the device driver.